/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ADT;

import Interfaces.BoundingBox;
import Interfaces.Container;
import Interfaces.Mass;
import Interfaces.Pallet;
import Interfaces.StowageLocation;
import java.util.Collection;
import java.util.Set;

/**
 *
 * @author markusbaisch
 */
public class NullContainerImpl extends BodyImpl implements Container {

    StowageLocation loc;
    
    // Konstruktor
    private NullContainerImpl(BoundingBox box) {
        this.boundingBox = box;
    }

    static Container valueOf(BoundingBox box) {
        return new NullContainerImpl(box);
    }

    @Override
    public Mass emptyMass() {
        return Entities.MASS_ZERO;
    }

    @Override
    public Mass maxMass() {
        return Entities.MASS_ZERO;
    }

    @Override
    public boolean isEmpty() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public boolean isFull() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void load(int bayNo, int rowNo, Pallet elem) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void load(Pallet elem) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void loadAll(Collection<? extends Pallet> coll) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public boolean tierIsEmpty(int bayNo, int rowNo) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public boolean tierIsFull(int bayNo, int rowNo) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public boolean contains(Object elem) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public boolean containsAll(Collection<?> coll) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public Pallet get(StowageLocation loc) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public Set<Pallet> getAll() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public StowageLocation locationOf(Pallet elem) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public StowageLocation loc() {
        return loc;
    }

    @Override
    public void setLocNull() {
        loc = Entities.nullLocation();
    }

    @Override
    public void setLoc(Object stowage, StowageLocation loc) {
        this.loc = loc;
    }

    @Override
    public boolean isFree() {
        return true;
    }

    @Override
    public boolean isBlocked() {
        return false;
    }

    @Override
    public boolean isOccupied() {
        return false;
    }

    @Override
    public int compareTo(Container t) {
        throw new UnsupportedOperationException("Not supported yet.");
    }
}
